package main

import "fmt"

func main() {
	fmt.Println(plusOne([]int{1}))
}

func plusOne(digits []int) []int {
	data := make([]int, len(digits))
	var jw int
	for i := len(digits) - 1; i >= 0; i-- {
		if i == len(digits)-1 {
			digits[i] = digits[i] + 1
			if digits[i] >= 10 {
				jw = 1
				digits[i] = digits[i] % 10
				continue
			}
		}

		if jw == 1 {
			if digits[i]+jw >= 10 {
				jw = 1
				data[i] = (digits[i] + jw) % 10
			} else {
				data[i] = digits[i] + jw
				jw = 0 
			}
		} else {
			data[i] = digits[i]
		}

	}

	if jw != 0 {
		r := []int{jw}
		r = append(r, data...)
		return r
	} else {
		return data
	}
}
